#ifndef BACKUPDIALOG_H
#define BACKUPDIALOG_H

#include <QDialog>
#include <QFileDialog>
#include <QPair>
#include <QListWidgetItem>
#include <unordered_map>

namespace Ui {
class BackUpDialog;
}

class BackUpDialog : public QDialog
{
    Q_OBJECT

private:
    std::unordered_map<QString, QListWidgetItem*> mp; // ip->item
    std::unordered_map<QString, QString> mac_map;   // ip->mac

public:
    explicit BackUpDialog(QWidget *parent = nullptr);
    ~BackUpDialog();

public:
    void addNewItem(const QString& ip, const QString& mac);

    void deleteItem(const QString& ip);

    QString getMac(const QString& ip);

signals:
    void backup_cloud(const QString& ip);

    void backup_local(const QPair<QString, QString>& pair);

    void clearBuf(const QString& ip);

private slots:
    void on_btn_all_clicked();

    void on_btn_none_clicked();

    void on_btn_inverse_clicked();

    void on_btn_backup_cloud_clicked();

    void on_btn_backup_local_clicked();

    void on_btn_clear_clicked();

private:
    Ui::BackUpDialog *ui;
};

#endif // BACKUPDIALOG_H
